﻿using Cofe.Core;
using Cofe.Core.Property;
using Cofe.Core.Security;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Cofe.IO
{
    public interface IFileSystemInfo : ICofeSystemInfo
    {




        /////// <summary>
        /////// Gets the path accessable in IO, expand and return a temp path if this virtual entries (!IsFileSystem).
        /////// May return null if manager.TempPath is not set.
        /////// </summary>
        ////string FullName { get; }

        /////// <summary>
        /////// For virtual item  (!IsFileSystem), the temporary path in file system (IO), unlike FullName, calling TempPath will not expanded
        /////// </summary>
        ////string TempPath { get; }

        ///// <summary>
        ///// Return attributes of current entries.
        ///// </summary>
        //FileAttributes FileAttributes { get; }



 
        ///// <summary>
        ///// Gets the time when the creation time of the current entries.
        ///// </summary>
        //DateTime CreationTime { get; }

        ///// <summary>
        ///// Gets the time when the creation time of the current entries.
        ///// </summary>
        //DateTime CreationTimeUtc { get; }

      
        /////// <summary>
        /////// Gets whether current entries is virtual.
        /////// </summary>
        ////bool IsVirtual { get; }

        ///// <summary>
        ///// Get whether current entries belong to a FileSystem.
        ///// If not, changed file will trigger IInternalFileInfoExA.UpdateSource(), which will upload back the file to parent.
        ///// </summary>
        //bool IsFileSystem { get; }



        ///// <summary>
        ///// Return whether an entries equals to another.
        ///// </summary>
        ///// <param name="obj"></param>
        ///// <returns></returns>
        //bool Equals(object obj);

        ///// <summary>
        ///// Return hash code of the current entries, default implementation is based on ParseName.
        ///// </summary>
        ///// <returns></returns>
        //int GetHashCode();


        /////// <summary>
        /////// For virtual item  (!IsFileSystem), expand the item to file system.
        /////// </summary>
        ////Task ExpandAsync();
    }
}
